package com.tedu.api.date;

import java.util.Calendar;
import java.util.Date;

/**
 * 包位置：java.util
 * Calendar抽象类：时间类
 * 替换Date时间方法功能
 * 1.基数按时间分量：根据毫秒数换算时间：年  月  日  时  分  秒
 * 2.设计时间分量：修改年月日时分秒，底层用毫秒数算的结果
 * 3.增加/减少时间分量：增加/减少指定毫秒数
 * Calendar抽象创建
 * Calendar cl=Calendar.getInstance();
 * Calendar.getInstance()--封装Calendar的new功能
 *
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //Calendar--格里高利历  公历  月0~11
        Calendar cl= Calendar.getInstance();
        //get()获取年月日时分秒【毫秒数：静态常量--年月日时分秒】
        int year=cl.get(Calendar.YEAR);//获取年
        int month=cl.get(Calendar.MONTH)+1;//获取月
        int date=cl.get(Calendar.DAY_OF_MONTH);//获取日
        int hours=cl.get(Calendar.HOUR);//获取时
        int minute=cl.get(Calendar.MINUTE);//获取分
        int second=cl.get(Calendar.SECOND);//获取秒
        //输出：今天是：2024年9月26日   现在时间是：9：xx：xx
        System.out.println("今天是："+year+"年"+month+"月"+date+"日"+hours+"时"+minute+"分"+second+"秒");
        //设置到明年的今天
        //set(改变的时间,绝对时间);
        cl.set(Calendar.YEAR,2025);
        Date a=cl.getTime();
        System.out.println("明年的今天"+a);
        //add(改变的时间,相对时间);
        cl.add(Calendar.YEAR,-2);
        a=cl.getTime();
        System.out.println("过去的今天"+a);
        //检查一个月的最大天数【总天数】
        int day=cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("本月最大天数"+day);
    }
}
